<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    let obj = {
        a: 1,
        b: 0,
        c: undefined,
        d: false
    }

    // 对象当中是否有这个属性    if( obj.a )  { obj.a = 2 }
    console.log(obj.a &&= 2) // 2
    console.log(obj.b &&= 2) // 0
    console.log(obj.c &&= 2) // undefined

    // 如果值为真，就等于新值；如果值为假，就为原值    if( !obj.a ){ obj.a = 2 }
    console.log(obj.a ||= 2) // 2
    console.log(obj.b ||= 2) // 2
    console.log(obj.c ||= 2) // 2
    console.log('test:', obj.d ||= 2)

    // 如果为undefined或null，就为新值   if( obj.a === undefined || obj.a === null ) { obj.a = 2 }
    console.log(obj.a ??= 2) // 2
    console.log(obj.b ??= 2) // 2
    console.log(obj.c ??= 2) // 2
</script>
</body>
</html>